Kestrel-3

On the Unix Philosophy
Login
(Some headers removed to prevent spam scrapers.  Reposted with permission.)


Received: by 2002:a67:8cc3:0:0:0:0:0 with SMTP id o186csp2625vsd;
        Wed, 20 Mar 2019 14:28:20 -0700 (PDT)
X-Received: by 2002:a19:ae11:: with SMTP id f17mr29172lfc.12.1553117300327;
        Wed, 20 Mar 2019 14:28:20 -0700 (PDT)
X-Received: by 2002:a19:48d5:: with SMTP id v204mr21439lfa.70.1553117299292; Wed, 20 Mar 2019 14:28:19 -0700 (PDT)
MIME-Version: 1.0
From: "William Tanksley, Jr"
Date: Wed, 20 Mar 2019 14:27:52 -0700
Subject: The Unix Philosophy
To: "Samuel A. Falvo II"
Content-Type: text/plain; charset="UTF-8"


The Unix Philosophy is to make many small programs (which are made
enormous over time) which do one thing (that nobody needs) well (and
the things they actually need, barely acceptably), (and then outputs
the result in a format that none of the other Unix programs can
accommodate except with regexes that only coincidentally work with the
dataset you're currently testing with).

I offer for example:

- xargs, which hates you if spaces get in the input, and hates you
forever if apostrophes get into it. The GNU version makes it barely
acceptable.

- everything that accepts filenames if some idiot added a newline to a
filename. BECAUSE YOU CAN. BTW, the "idiot" is probably a script, and
now everything's broken.

- GNU Parallel, which fixes most of xargs problems but adds the
problem of parsing all quoted strings.

- md5sum (and all the other *sum programs), which have a hilariously
delicate output format involving space and an optional asterisk.

I shouldn't include exiftool, which does not follow the Unix
Philosophy, except that it is what's giving me the most pain right
now.